Javaで作成したMapReduce処理をEMRで動かす
はじめに
Javaで作成したMapReduceの処理をEMRで動かしてみました。その手順について簡単ですが纏めてみたいと思います。
今回動かすMapReduce処理について
弊社小澤がHadoop MapReduce入門 | Hadoop Advent Calendar 2016 #01で書いた処理をそのまま使用します。この記事を参考に、動作するJarを作成しておいてください。
EMRでの実行
ではEMRでの実行についてです。手順としては
- JarをS3にアップロード
- クラスターの作成
- 作成したクラスターにステップを追加
となります。
1.JarをS3にアップロード
先に作成したJarをS3の任意のバケットに格納して置いて下さい。この手順については省略します。
2.クラスターの作成
次にEMRのクラスターを起動します。手順についてはEMRでクラスターを起動してHiveスクリプトを実行する内の記述を参考にしてください。
3.作成したクラスターにステップを追加
クラスターが立ち上がったら、ステップを追加します。このステップで、MapReduce処理を実装したJarを指定します。
マネジメントコンソールのクラスター画面にて「ステップの追加」ボタンを押下します。
「ステップの追加」ダイアログが表示されるので、以下の値を入力します。
- ステップタイプ・・・「カスタムJAR」を選択
- 名前・・・任意のステップ名
- JARの場所・・・S3にアップロードしたJarのフルパス
- 引数・・・1つ目:Jarのメインクラス名(パッケージ名も含む)、2つ目以降:Jar内のロジックで必要な引数(今回はS3上の入力フォルダパス、出力フォルダパス)
- 失敗時の操作・・・エラーとなった際の任意の操作を選択
最後に「追加」ボタンを押下します。引数で指定した出力先に結果が配置されるはずです。
まとめ
参考にした小澤の記事と合わせ、ローカルでMapReduce処理を実装してEMR上で実行することができました。これを機にいろいろとEMRを試してみようと思います。